package com.huluobo.koltinim2003a.ui.activity

import android.os.Handler
import com.huluobo.koltinim2003a.R
import com.huluobo.koltinim2003a.base.BaseActivity
import com.huluobo.koltinim2003a.contract.splash.SplashContract
import com.huluobo.koltinim2003a.contract.splash.SplashPresenter
import org.jetbrains.anko.startActivity

/**
 * Created by lc on 2022/9/21.
 * view层的UI反馈,
 * 1.如果没有登录,则跳转到登录页面,并且展示当前页面2秒
 * 2.如果已经登录,则跳转到主页面
 */
class SplashActivity : BaseActivity(), SplashContract.View {

    private val presenter = SplashPresenter(this)

    override fun init() {
        super.init()
        presenter.checkLoginStatus()
    }

    //伴生函数,相当于Java中的静态代码快,并且,跟随当前类的生命周期
    companion object {
        const val DELAY = 2000L //2秒,常量,设置跳转的时间
    }

    //实现懒加载,相当于new一个Handler,并且只有在使用到的时候才会进行new
//    private val handler = Handler()
    private val handler by lazy {
        Handler()
    }

    override fun getLayoutResId(): Int = R.layout.activity_splash

    //如果没有登录的UI反馈
    override fun onNotLoggedIn() {
        handler.postDelayed(
            {
                startActivity<LoginActivity>()//使用anko插件,不需要添加intent即可跳转
            }, DELAY
        )
    }

    //已登录的UI反馈
    override fun onLoggedIn() {
        //跳转到主页面
        startActivity<MainActivity>()
        finish()
    }
}